home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1997 September / Macworld (1997-09).dmg / Shareware World / Info / For Developers / DR2.1update3 / install_shlibs < prev    next >
Text File  |  1997-06-28  |  6KB  |  208 lines

  1. #!/bin/sh
  2.  
  3. # Feel free to browse and modify this script to suit your needs - ghc
  4.  
  5. LIST1="
  6.     glibc-0.961212-1N.ppc.rpm\
  7.     ldconfig-1.8.1-3B.ppc.rpm\
  8. "
  9.  
  10. RPM="\
  11.     rpm-2.3.11-1C.ppc.rpm\
  12. "
  13.  
  14. LIST2="\
  15.     glibc-static-0.961212-1N.ppc.rpm\
  16.     glibc-devel-0.961212-1N.ppc.rpm\
  17.     kernel-headers-2.0.28-1D.ppc.rpm\
  18. "
  19.  
  20. LIST3="\
  21.     glibc-info-0.961212-1N.ppc.rpm\
  22.     rpm-devel-2.3.11-1C.ppc.rpm\
  23.     libtermcap-2.0.8-4B.ppc.rpm\
  24.     libtermcap-devel-2.0.8-4B.ppc.rpm\
  25.     ncurses-1.9.9e-4B.ppc.rpm\
  26.     gcc-2.7.2-2J.ppc.rpm\
  27.     gcc-c++-2.7.2-2J.ppc.rpm\
  28.     gcc-objc-2.7.2-2J.ppc.rpm\
  29.     binutils-2.7-1E.ppc.rpm\
  30.     libg++-2.7.1.4-4F.ppc.rpm\
  31.     libg++-devel-2.7.1.4-4F.ppc.rpm\
  32.     ncurses-devel-1.9.9e-4B.ppc.rpm\
  33.     gdbm-1.7.3-8B.ppc.rpm\
  34.     gdbm-devel-1.7.3-8B.ppc.rpm\
  35.     cracklib-2.5-1C.ppc.rpm\
  36.     cracklib-dicts-2.5-1C.ppc.rpm\
  37.     pwdb-0.54-3B.ppc.rpm\
  38.     pamconfig-0.51-2B.ppc.rpm\
  39.     pam-0.57-2E.ppc.rpm\
  40.     util-linux-2.5-38D.ppc.rpm\
  41.     sh-utils-1.16-4B.ppc.rpm\
  42.     tcp_wrappers-7.5-1B.ppc.rpm\
  43.     NetKit-B-0.08-13C.ppc.rpm\
  44.     procps-1.01-5D.ppc.rpm\
  45.     getty_ps-2.0.7h-1B.ppc.rpm\
  46.     bash-1.14.6-2B.ppc.rpm\
  47.     csh-5.2.6-5B.ppc.rpm\
  48.     fileutils-3.16-2B.ppc.rpm\
  49.     grep-2.0-5B.ppc.rpm\
  50.     gzip-1.2.4-7B.ppc.rpm\
  51.     hfsutils-2.0-1B.ppc.rpm\
  52.     less-321-3C.ppc.rpm\
  53.     make-3.75-1B.ppc.rpm\
  54.     net-tools-1.32.alpha-2B.ppc.rpm\
  55.     pax-1.0-1B.ppc.rpm\
  56.     psmisc-11-4B.ppc.rpm\
  57.     sed-2.05-6B.ppc.rpm\
  58.     tcsh-6.06-10B.ppc.rpm\
  59.     SysVinit-2.64-8B.ppc.rpm\
  60. "
  61.  
  62. FILE_LIST="$LIST1 $RPM $LIST2 $LIST3"
  63.  
  64. echo "Checking to ensure that you are running this script as root..."
  65. if [ "`id -un`" != "root" ] ; then
  66.     echo "    Uhoh, you must run this script as the superuser"
  67.     echo "    Please log in as \"root\" and try again."
  68.     exit
  69. fi
  70.  
  71. echo "Checking to ensure that you have the RPMS/ppc directory..."
  72.  
  73. if [ ! -d RPMS ] ; then
  74.     echo "    Uhoh, there is no RPMS directory here."
  75.     echo "    You need to run this script from the directory above the RPMS"
  76.     echo "    directory."
  77.     echo "    The RPMS directory should contain the ppc directory."
  78.     echo "    The RPMS/ppc directory contains all the RPM package files"
  79.     echo "    for this update."
  80.     exit
  81. fi
  82.  
  83. if [ ! -d RPMS/ppc ] ; then
  84.     echo "    Uhoh, there is no RPMS/ppc directory."
  85.     echo "    There is an RPMS directory, good.  But there is no"
  86.     echo "    ppc directory in it."
  87.     echo "    The RPMS directory should contain the ppc directory."
  88.     echo "    The RPMS/ppc directory contains all the RPM package files"
  89.     echo "    for this update."
  90.     exit
  91. fi
  92.  
  93. cd RPMS/ppc
  94.  
  95. echo "Checking to ensure that all the needed RPMs are present..."
  96.  
  97. for i in $FILE_LIST ; do
  98.     if [ ! -r "$i" ] ; then
  99.     MISSING="$MISSING $i"
  100.     fi
  101. done
  102.  
  103. if [ "$MISSING" != "" ] ; then
  104.     echo "    Uhoh, some of the necessary RPM files are not present in the"
  105.     echo "    RPMS/ppc directory.  Here is a list of missing RPM packages:"
  106.     for i in $MISSING ; do
  107.     echo "        $i"
  108.     done
  109.     echo "    You need to locate the missing RPM package files and place"
  110.     echo "    them in the RPMS/ppc directory.  Then rerun this script."
  111.     exit
  112. fi
  113.  
  114. echo "----------------------------------------------------------------------"
  115. echo "Good, everything seems to be here.  The next step is to install"
  116. echo "basic shared library support."
  117. echo ""
  118. echo "Although they probably wont, the next few steps could ruin"
  119. echo "your MkLinux installation.  If there is any data on your system"
  120. echo "that you havent backed up, and you would miss if your system"
  121. echo "became unusable, please quit out of this script and take care"
  122. echo "of your data."
  123. echo ""
  124. echo "This script will not proceed until you type \"yes\" (the whole word)"
  125. echo "at the following prompt.  Any other response (including just a"
  126. echo "carriage return) will terminate the script."
  127. echo ""
  128. echo "Please read the following question carefully."
  129. echo ""
  130. echo -n "Do you want to proceed with the shared library installation? "
  131.  
  132. read answer
  133.  
  134. if [ "$answer" != "yes" -a "$answer" != "YES" ] ; then
  135.     echo ""
  136.     echo "You did not answer \"yes\", therefore, this script is terminating."
  137.     echo "When you are ready, please run this script again and type \"yes\""
  138.     echo "at the above prompt."
  139.     exit
  140. fi
  141.  
  142. echo ""
  143. echo "Okay.  Now proceeding with the installation of shared libraries."
  144. echo "Installing a few core packages..."
  145.  
  146. rpm -ihv --force --nodeps $LIST1 2>/dev/null
  147.  
  148. echo ""
  149. echo "Now creating your /etc/ld.so.conf file..."
  150. cat > /etc/ld.so.conf <<END
  151. /lib
  152. /usr/lib
  153. /usr/X11/lib
  154. /usr/local/lib
  155. END
  156.  
  157. echo "Now running the ldconfig command to build your cache..."
  158. ldconfig
  159. echo "Okay, basic shared library support has been installed."
  160.  
  161. echo "Installing a new version of rpm..."
  162. rpm -ihv --force --nodeps $RPM
  163.  
  164. echo "Reinitializing the RPM database..."
  165. rm -f /var/lib/rpm/*
  166. rpm --initdb
  167. echo "...and repopulating it with the packages we _just_ installed."
  168. rpm -i --nodeps --force $LIST1 $RPM 2> /dev/null
  169.  
  170. echo "Now installing the rest of the shared library based packages in this update..."
  171.  
  172. # The options --force and --nodeps are not required for EVERY package in
  173. # LIST2 and LIST3, just for a few of them.  However, I have put those options
  174. # on so that things will complete smoothly.  Granted, the RPM database is
  175. # a little incomplete now, but it is in pretty good shape.  It will only
  176. # get better as future updates replace old files with shared lib versions.
  177.  
  178. # Installing LIST2 is noisy, so send the complaints to /dev/null
  179. rpm -ihv --force --nodeps $LIST2 2> /dev/null
  180.  
  181. for i in $LIST3 ; do
  182.     rpm -ihv --force --nodeps $i
  183. done
  184.  
  185. # Now do some hackery to fix up some problems with the install
  186.  
  187. # link for /usr/lib/libncurses.so.2.0 seems to be missing
  188. ln -s libncurses.so.1.9.9e /usr/lib/libncurses.so.2.0
  189.  
  190. # glibc created bunches of rpmsave and rpmorig files of things that
  191. # really are not configuration files.  We will remove them.
  192.  
  193. find /lib /usr/bin /usr/include /usr/lib -depth -print \
  194.     | egrep "\.(rpmsave|rpmorig)$" \
  195.     | xargs rm -rf
  196.  
  197. echo "----------------------------------------------------------------------"
  198. echo "The DR2.1update3 portion of shared library installation is complete."
  199. echo ""
  200. echo "The next thing to do is to reboot your MkLinux system."
  201. echo ""
  202. echo "Note: the commands "shutdown" and "reboot" will not work this one"
  203. echo "time, because part of this installation changed a few files needed"
  204. echo "in the shutdown process.  Do not worry, just press the key sequence"
  205. echo "Control-Apple-Power, and your system will come back up."
  206.  
  207. sync ; sleep 1 ; sync
  208.